\chapter{Evaluation der Prototyp Browser}
\pagestyle{scrheadings}
\label{cha:konzept_evaluation_der _prototyp_browser}
In den nachfolgenden Abschnitten werden die erarbeiteten Grundlagen aus dem \autoref{cha:erweiterungskonzept_einzelner_browser} - \nameref{cha:erweiterungskonzept_einzelner_browser}  auf Gemeinsamkeiten und Unterschiede untersucht, um eine gemeinsame Basis für die browserunabhängige Erweiterung zu finden.
Dieser Schritt ist notwendig, da nicht alle Browser das gleiche Erweiterungskonzept implementieren und auf unterschiedlichen Technologien und Programmiersprachen aufsetzten.

\section{Evaluationsmethode}
\label{sec:konzept_evaluationsmethode}
Die Evaluation der Prototyp Browser erfolgt nach der vereinfachten Methode der Nutzwertanalyse. Die Kriterien basieren auf den funktionalen Anforderungen und den Qualitätsanforderungen aus der Anforderungsanalyse in \autoref{cha:anforderungen}.

\section{Randbedingungen}
\label{sec:konzept_randbedingung}
Bei der Evaluation sind abgesehen von den Anforderungen auch technologische Randbedingungen zu beachten. Da die Qualitätsanforderungen \refqrequirement{qrq:browserunabhängigkeit} - Browserunabhänigkeit bei diesem Projekt von grosser Bedeutung ist, spielt die Auswahl der Technologien eine elementare Rolle. Grundsätzlichen soll das Konzept auf offen Webstandards basieren, damit zu einem späteren Zeitpunkt auch andere Browser, die diese Standards unterstützen, implementiert werden können. Plattformabhängige und proprietäre Technologien werden beim Konzept explizit nicht berücksichtigt.

\section{Evaluation}
\label{sec:konzept_evaluation}

\subsection{Bewertungskriterien}
\label{subsec:konzept_bewertungskriterien}

In der nachfolgenden Auflistung werden alle Kriterien erläutert, die für die Evaluation ausschlaggebend sind:
\begin{itemize}
  \item{\textbf{Installations-Fähigkeit:} Der Browser unterstützt das Installieren und Deinstallieren von Erweiterungen. \textbf{(Referenz: \reffrequirement{frq:xcommander_installieren})}}
  \item{\textbf{Update-Fähigkeit:} Der Browser unterstützt automatische Updates von Erweiterungen. \textbf{(Referenz: \reffrequirement{frq:xcommander_updaten})}}
  \item{\textbf{Technologien:} Das Erweiterungskonzept basiert ausschliesslich auf offenen Web Standards und plattformübergreifenden Technologien. \textbf{(Referenz: \autoref{sec:randbedingungen} - \nameref{sec:randbedingungen}, \refqrequirement{qrq:browserunabhängigkeit})}}
  \item{\textbf{Sicherheit:} Das Erweiterungskonzept basiert auf einem klaren Sicherheitskonzept (z.B. Same Orgin Policy und \gls{cross_site_scripting} unter Beachtung einer Domain White"=List). \textbf{(Referenz: \reffrequirement{frq:xcommander_xhr}, \refqrequirement{qrq:sicherheit})}}
  \item{\textbf{Debugging:} Die Browsererweiterung und XCommands können im Entwicklermodus gedebuggt werden. \textbf{(Referenz: \reffrequirement{frq:xcommand_debug})}}
  \item{\textbf{Web Storage:} Das Browser"=Erweiterungskonzept unterstützt den \acrshort{w3c} Web Storage Standard um Daten lokal im Browser zu speichern. \textbf{(Referenz: \reffrequirement{frq:xcommander_local_storage})}}
  \item{\textbf{Web Messaging:} Das Browser"=Erweiterungskonzept unterstützt den \acrshort{w3c} Messaging Standard, damit Skripte in unterschiedlichen Prozessen miteinander kommunizieren können. \textbf{(Referenz: \reffrequirement{frq:xcommander_messaging})}}
\end{itemize}

\subsection{Gewichtung}
\label{subsec:konzept_gewichtung}
Die Gewichtung der einzelnen Kriterien leitet sich aus der Priorität der jeweiligen Anforderung ab. Nachfolgende \autoref{tab:konzept_gewichtung} zeigt den Schlüssel für die Umwandlung der Priorität aus der Anforderung in die numerische Gewichtung der Nutzwertanalyse. Bei Kriterien, die auf mehreren Anforderungen basieren, ist die höchste Priorität ausschlaggebend. 

\begin{longtable}{|l|c|c|c|}
\caption{Schlüssel für Gewichtung}\label{tab:konzept_gewichtung}\\
   \hline
   \textbf{Priorität} & klein & mittel & gross\\
   \hline
   \textbf{Gewichtung} & 1 & 2 & 3\\
   \hline
\end{longtable}

\subsection{Erfüllungsgrad}
\label{subsec:konzept_erfuellungsgrad}
Der Erfüllungsgrad der einzelnen Kriterien erfolgt nach den Fakten aus den erarbeiteten Grundlagen in \autoref{cha:erweiterungskonzept_einzelner_browser} - \nameref{cha:erweiterungskonzept_einzelner_browser}. Die nachfolgende \autoref{tab:konzept_erfuellungsgrad} zeigt den Schlüssel für die Umwandlung des Erfüllungsgrades in einen numerischen Wert. 

\begin{longtable}{|l|c|c|c|c|c|}
\caption{Schlüssel für Erfüllungsgrad}\label{tab:konzept_erfuellungsgrad}\\
   \hline
   \textbf{Erfüllungsgrad} & sehr gering & gering & mittel & gross & sehr gros\\
   \hline
   \textbf{Wert} & 1 & 2 & 3 & 4 & 5\\
   \hline
\end{longtable}

\subsection{Bewertung}
\label{subsec:konzept_bewertung}
Die Bewertung eines einzelnen Kriteriums berechnet sich aus dem Produkt der Gewichtung und des Erfüllungsgrades.
\begin{align*}
\fbox{Bewertung = Gewichtung x Erfüllungsgrad}
\end{align*}

\begin{landscape}
\subsection{Nutzwertanalyse}
\label{subsec:konzept_nutzwertanalyse}

\autoref{tab:nutzwertanalyse} dokumentiert das Resultat der Nutzwertanalyse. Die erste Spalte beinhaltet das Kriterium und die zweite Spalte die relevante Anforderungen. Die dritte Spalte enthält die aus der Priorität abgeleitete Gewichtung. Die weiteren Spalten enthalten pro Kandidat den Erfüllungsgrad und die berechnete Bewertung für das jeweilige Kriterium.

\begin{longtable}{l c c c c c c c}
\caption{Nutzwertanalyse zur Evaluation der Prototyp Browser}\label{tab:nutzwertanalyse}\\
   \hline
   \textbf{Kriterium} & \textbf{Anforderung} & \textbf{Gewichtung} & \textbf{\acrshort{ie}} & \textbf{Chrome} & \textbf{Firefox} & \textbf{Safari} & \textbf{Opera}\\
   \hline\rowcolor[gray]{0.9}
   Installations-Fähigkeit & \reffrequirement{frq:xcommander_installieren} & 3 & 3 \textbf{(9)} & 5 \textbf{(15)} & 5 \textbf{(15)} & 5 \textbf{(15)} & 5 \textbf{(15)}\\
   Update-Fähigkeit & \reffrequirement{frq:xcommander_updaten}            & 2 & 1 \textbf{(2)} & 5 \textbf{(10)} & 5 \textbf{(10)} & 5 \textbf{(10)} & 5 \textbf{(10)}\\\rowcolor[gray]{0.9}
   Technologien & \refqrequirement{qrq:browserunabhängigkeit}             & 3 & 1 \textbf{(3)} & 4 \textbf{(12)} & 3 \textbf{(9)}  & 4 \textbf{(12)} & 4 \textbf{(12)}\\
   Sicherheit & \refqrequirement{qrq:sicherheit}                          & 3 & 3 \textbf{(9)} & 5 \textbf{(15)} & 4 \textbf{(12)} & 5 \textbf{(15)} & 4 \textbf{(12)}\\\rowcolor[gray]{0.9}
   Debugging & \reffrequirement{frq:xcommand_debug}                        & 2 & 2 \textbf{(4)} & 5 \textbf{(10)} & 3 \textbf{(6)}  & 5 \textbf{(10)} & 4 \textbf{(8)}\\
   Web Storage & \reffrequirement{frq:xcommander_local_storage}            & 3 & 3 \textbf{(9)} & 5 \textbf{(15)} & 3 \textbf{(9)}  & 5 \textbf{(15)} & 5 \textbf{(15)}\\\rowcolor[gray]{0.9}
   Web Messaging & \reffrequirement{frq:xcommander_messaging}              & 2 & 3 \textbf{(6)} & 5 \textbf{(10)} & 4 \textbf{(8)}  & 5 \textbf{(10)} & 5 \textbf{(10)}\\
   \hline
   \vspace{-14pt}\\
   \hline
   \textbf{Total} & & & \textbf{42} & \textbf{87} & \textbf{69} & \textbf{87} & \textbf{82}\\
   \hline
\end{longtable}
\end{landscape}

\subsection{Beurteilung}
\label{subsec:konzept_beurteilung}
Das Ergebnis der Nutzwertanalyse bestätigt den ersten Eindruck nach der Erarbeitung der Grundlagen (\vgl{\autoref{cha:erweiterungskonzept_einzelner_browser} - \nameref{cha:erweiterungskonzept_einzelner_browser}}). Die Erweiterungskonzepte der Browser Chrome, Safari und Opera basieren alle auf dem identischen Ansatz mittels Content Scripts und einer Background Page. Das Erweiterungskonzept dieser drei Browser unterstützt eine Vielzahl an \acrshort{w3c}"=Standards, basiert auf den gleichen Technologien und unterliegt einem klaren Sicherheitskonzept.

Der Firefox Browser bietet mit der Add-on \acrshort{sdk} ein ähnliches Erweiterungskonzept, wie die zuvor genannten Browser an. Da das Add-On \acrshort{sdk} nur ein Library ist, die mittels vereinfachter Schnittstelle, traditionelle Erweiterungen kapselt, basieren viele Funktionen auf proprietären Methoden des Firefox Browsers. Der Firefox Browser unterstützt immerhin viele \acrshort{w3c}"=Standards, jedoch sind viele nicht als Bestandteil des Erweiterungskonzept implementiert.

Der Internet Explorer verfolgt als einziger Browser ein komplett eigene Strategie bezüglich dem Erweiterungskonzept. Erweiterung basieren nicht ausschliesslich auf Web Technologien sondern hauptsächlich auf proprietären Windows-Standards, wie dem Component Object Model. Ein grosser Teil der Logik einer Internet Explorer Erweiterung muss in Form eines \gls{_bho} in nativem Code entwickelt werden. Dieses Konzept limitiert die Verwendung von neuen Web Standards wie \acrshort{html}5 und bietet nur erschwerte Debugging"=Möglichkeiten an.

\subsection{Entscheid}
\label{subsec:konzept_entscheid}
Die Erweiterungskonzepte der drei Browser Chrome, Safari und Opera weisen viele Gemeinsamkeiten auf. Die Nutzwertanalyse bestätigt unter Beachtung der ermittelten Anforderung diese Tatsache. Aus diesem Grund wird das nachfolgende Konzept primär auf diese drei Browser ausgerichtet. Der Prototyp der browserunabhängigen Erweiterung soll anschliessend für diese drei Browser implementiert werden.